package com.ssy.jt808.gateway.client.media.pojo;

import com.ssy.jt808.gateway.client.pojo.JtRequestBase;
import com.ssy.jt808.gateway.client.pojo.JtResponse;
import lombok.Data;
import org.springframework.core.ParameterizedTypeReference;

/**
 * 平台下发远程录像回放请求
 *
 * @author wangzezhou
 */
@Data
public class T9201Request extends JtRequestBase{
  public T9201Request(){
    super(0x9201);
  }

  /** 服务器IP地址 */
  private String ip;
  /** 实时视频服务器TCP端口号 */
  private int    tcpPort;
  /** 实时视频服务器UDP端口号 */
  private int    udpPort;
  /** 逻辑通道号 */
  private int    channelNo;
  /** 音视频资源类型：0.音视频 1.音频 2.视频 3.视频或音视频 */
  private int    mediaType;
  /** 码流类型：0.所有码流 1.主码流 2.子码流(如果此通道只传输音频,此字段置0) */
  private int    streamType;
  /** 存储器类型：0.所有存储器 1.主存储器 2.灾备存储器 */
  private int    storageType;
  /** 回放方式：0.正常回放 1.快进回放 2.关键帧快退回放 3.关键帧播放 4.单帧上传 */
  private int    playbackMode;
  /** 快进或快退倍数：0.无效 1.1倍 2.2倍 3.4倍 4.8倍 5.16倍 (回放控制为1和2时,此字段内容有效,否则置0) */
  private int    playbackSpeed;
  /** 开始时间(YYMMDDHHMMSS,回放方式为4时,该字段表示单帧上传时间) */
  private String startTime;
  /** 结束时间(YYMMDDHHMMSS,回放方式为4时,该字段无效,为0表示一直回放) */
  private String endTime;

  @Override
  public String url(){
    return host + "/v1/terminals/messages/9201";
  }

  @Override
  public ParameterizedTypeReference replyTypeRef(){
    return new ParameterizedTypeReference<JtResponse<T1205Reply>>(){ };
  }
}
